<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2016/4/15
 * Time: 14:12
 */

namespace Admin\Model;


use Think\Model;

class AdminLoginModel extends Model
{
    // 数据表名（不包含表前缀）
    protected $tableName        =   'admin';

    /**
     * 根据管理员ID查询管理员信息
     * @param Integer $a_id 管理员ID
     * @return Arrsy()
    **/
    public function getAdminInfoById($a_id){
        return $this->where("a_id=$a_id")->find();
    }
    /**
     * 管理员禁用
     * @param Integer $a_id 管理员ID
     * @return boolean
    **/
    public function adminTypeDel($a_id){
        $res=$this->where("a_id=$a_id")->setField('a_status',2);
        return $res === false ? false:true;
    }
    /**
     * 管理员恢复
     * @param Integer $a_id 管理员ID
     * @return boolean
     **/
    public function adminTypeRec($a_id){
        $res=$this->where("a_id=$a_id")->setField('a_status',1);
        return $res === false ? false:true;
    }
    /**
     * 查询二级管理员
     * @param String $a_email 用户邮箱
     * @param Integer $a_status 用户状态
     * @return array()
    **/
    public function getAdminCategoryInfo($a_email,$a_status){
        $where=array();
        if(!empty($a_email)){
            $where['a_email']=array('LIKE',"%{$a_email}%");
        }
        if(!empty($a_status)){
            $where['a_status']=$a_status;
        }
        $where['a_category']=2;
        return $this->where($where)->order('a_id DESC')->select();
    }
    /**
     * 查询用户所有信息
     * @return array()
    **/
    public function getAdminAllInfo(){
        return $this->order('a_id DESC')->select();
    }
    /**
     * 根据用户ID获取a_category管理员类别
     * @return  a_category
    **/
    public function getAdminCategory($a_id){
        return $this->where("$a_id=a_id")->getField('a_category');
    }
    /**
     * 根据u_email查询  返回用户信息
     * @param String $a_email 用户邮箱
     * @return array()
     **/
    public function getAdminInfo($a_email){
        $where=array();
        $where['a_email']=array('LIKE',$a_email);
        $where['a_status']=1;
        return $this->where($where)->find();
    }
    /**
     * 用户验证
     * @param String $email 用户邮箱
     * @param String $a_pwd 用户密码
     * @return boolean
     */
    public function adminLoginSkip($email,$a_pwd){
        $a_id=$this->getAdminInfo($email);
        $where['a_pwd']=myMd5($a_pwd);
        $where['a_id']=$a_id['a_id'];
        $res=$this->where($where)->find();
        if($res==false){
            return false;
        }else{
            if(empty($res['a_id'])){
                return false;
            }
            $this->updateLastLoginTime($res['a_id']);
            session('a_id',$res['a_id']);
            session('adminInfo',$res);
            return true;
        }
    }
    /**
     * 修改登录时间
     * @param Integer $a_id 用户id
     * @return Boolean
     */
    private function updateLastLoginTime($a_id){
        $res = $this->where("a_id = {$a_id}")->setField('a_lastlogindate',time());
        return empty($res) ? false : true;
    }
}